home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / DisptchB.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  5.9 KB  |  234 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:DisptchB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODBaseDispatcher_xh
  18. #define SOM_ODBaseDispatcher_xh
  19.  
  20. class ODBaseDispatcher;
  21.  
  22. #define ODBaseDispatcher_MajorVersion 1
  23. #define ODBaseDispatcher_MinorVersion 0
  24.  
  25. /* C++ som defs */
  26. #include <somcls.xh>
  27.  
  28. /* Include C++ parent defs */
  29. #ifndef SOM_ODObject_xh
  30. #include <ODObject.xh>
  31. #endif
  32.  
  33. #ifndef ODBaseDispatcher_API
  34. #define ODBaseDispatcher_API
  35. /*
  36.  * -- The Class API
  37.  */
  38.  
  39. /*
  40.  * Start of user-defined types:
  41.  */
  42. class ODExtension;
  43. class ODDispatchModule;
  44. class ODSession;
  45. class ODPart;
  46. class ODFacet;
  47. class ODFrame;
  48.  
  49. /*
  50.  * End of user-defined types.
  51.  */
  52.  
  53. #if applec ^ PRAGMA_LIB_EXPORT
  54. #pragma lib_export on
  55. #endif
  56.  
  57.  
  58. /* A procedure to create the ODBaseDispatcher Class */
  59. SOMEXTERN SOMClass * SOMLINK ODBaseDispatcherNewClass(
  60.         integer4 majorVersion,
  61.         integer4 minorVersion);
  62.  
  63. /* The API to the ODBaseDispatcher class object, and the methods it introduces. */
  64. typedef struct ODBaseDispatcherClassDataStructure {
  65.     SOMClass *classObject;
  66.     somMToken AddDispatchModule;
  67.     somMToken RemoveDispatchModule;
  68.     somMToken AddMonitor;
  69.     somMToken RemoveMonitor;
  70.     somMToken Dispatch;
  71.     somMToken TerminateEventLoop;
  72.     somMToken ShouldTerminateEventLoop;
  73.     somMToken RegisterIdle;
  74.     somMToken UnregisterIdle;
  75.     somMToken SetIdleFrequency;
  76.     somMToken Yield;
  77.     somMToken SetMouseRegion;
  78.     somMToken GetMouseRegion;
  79.     somMToken InvalidateFacetUnderMouse;
  80.     somMToken InvalidateMouseRegion;
  81.     somMToken GetFacetUnderMouse;
  82.     somMToken SetFacetUnderMouse;
  83.     somMToken HandleNullEvent;
  84.     somMToken GetSleepTime;
  85.     somMToken MouseRegionIsInvalid;
  86.     somMToken ComputeMouseRegion;
  87.     somMToken CheckFacetUnderMouse;
  88.     somMToken reserved1;
  89. } ODBaseDispatcherClassDataStructure;
  90. #ifdef SOM_NO_DATA_EXPORTS
  91.    SOMEXTERN ODBaseDispatcherClassDataStructure * ODBaseDispatcherGetClassData ( void );
  92. #   undef ODBaseDispatcherClassData
  93. #   define ODBaseDispatcherClassData (*ODBaseDispatcherGetClassData())
  94. #else
  95.    SOMEXTERN ODBaseDispatcherClassDataStructure ODBaseDispatcherClassData;
  96. #endif /* SOM_NO_DATA_EXPORTS */
  97.  
  98. #if applec ^ PRAGMA_LIB_EXPORT
  99. #pragma lib_export off
  100. #endif
  101.  
  102. #define _ODBaseDispatcher ODBaseDispatcherClassData.classObject
  103.  
  104. /* The API to parentMtabs for ODBaseDispatcher, and the instance data it introduces. */
  105. SOMEXTERN struct ODBaseDispatcherCClassDataStructure {
  106.     somMethodTabs parentMtab;
  107.     somDToken instanceDataToken;
  108. } ODBaseDispatcherCClassData;
  109.  
  110. /*
  111.  * -- Typedefs for Procedures that support Methods introduced by ODBaseDispatcher
  112.  */
  113. SOMEXTERN {
  114. typedef void   (* SOMLINK somTD_ODBaseDispatcher_AddDispatchModule)(ODBaseDispatcher *somSelf, Environment *ev,
  115.         ODEventType eventType,
  116.         ODDispatchModule* dispatchModule);
  117. typedef void   (* SOMLINK somTD_ODBaseDispatcher_RemoveDispatchModule)(ODBaseDispatcher *somSelf, Environment *ev,
  118.         ODEventType eventType);
  119. typedef void   (* SOMLINK somTD_ODBaseDispatcher_AddMonitor)(ODBaseDispatcher *somSelf, Environment *ev,
  120.         ODEventType eventType,
  121.         ODDispatchModule* dispatchModule);
  122. typedef void   (* SOMLINK somTD_ODBaseDispatcher_RemoveMonitor)(ODBaseDispatcher *somSelf, Environment *ev,
  123.         ODEventType eventType,
  124.         ODDispatchModule* dispatchModule);
  125. typedef ODBoolean   (* SOMLINK somTD_ODBaseDispatcher_Dispatch)(ODBaseDispatcher *somSelf, Environment *ev,
  126.         ODEventData* eventData);
  127. typedef void   (* SOMLINK somTD_ODBaseDispatcher_TerminateEventLoop)(ODBaseDispatcher *somSelf, Environment *ev);
  128. typedef ODBoolean   (* SOMLINK somTD_ODBaseDispatcher_ShouldTerminateEventLoop)(ODBaseDispatcher *somSelf, Environment *ev);
  129. }
  130.  
  131. #endif /* ODBaseDispatcher_API */
  132.  
  133.  
  134. /*
  135.  * -- Method Tokens are Thunks
  136.  */
  137. #undef somresolve_
  138. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  139.  
  140. /*
  141.  * -- The C++ Wrapper Class for ODBaseDispatcher
  142.  */
  143. class ODBaseDispatcher : public ODObject
  144. {
  145. public:
  146.  
  147. void *operator new(size_t size)
  148. {
  149.    SOM_IgnoreWarning(size);
  150.    if (!ODBaseDispatcherClassData.classObject) 
  151.       ODBaseDispatcherNewClass(ODBaseDispatcher_MajorVersion,ODBaseDispatcher_MinorVersion);
  152.    return (void *)
  153.       ((somTD_SOMClass_somNew)
  154.       somresolve_((SOMObject *)((void*)(ODBaseDispatcherClassData.classObject)),
  155.                  SOMClassClassData.somNew))
  156.          ((SOMClass *)((void*)(ODBaseDispatcherClassData.classObject)));
  157. }
  158.  
  159. void operator delete(void * obj)
  160. {
  161.    ((SOMObject *)obj)->somFree();
  162. }
  163.  
  164. /* public method: AddDispatchModule */
  165. void   AddDispatchModule(Environment *ev,
  166.         ODEventType eventType,
  167.         ODDispatchModule* dispatchModule)
  168. {
  169.    SOM_Resolve(this,ODBaseDispatcher,AddDispatchModule)
  170.     (this,ev,eventType,dispatchModule);
  171. }
  172.  
  173.  
  174. /* public method: RemoveDispatchModule */
  175. void   RemoveDispatchModule(Environment *ev,
  176.         ODEventType eventType)
  177. {
  178.    SOM_Resolve(this,ODBaseDispatcher,RemoveDispatchModule)
  179.     (this,ev,eventType);
  180. }
  181.  
  182.  
  183. /* public method: AddMonitor */
  184. void   AddMonitor(Environment *ev,
  185.         ODEventType eventType,
  186.         ODDispatchModule* dispatchModule)
  187. {
  188.    SOM_Resolve(this,ODBaseDispatcher,AddMonitor)
  189.     (this,ev,eventType,dispatchModule);
  190. }
  191.  
  192.  
  193. /* public method: RemoveMonitor */
  194. void   RemoveMonitor(Environment *ev,
  195.         ODEventType eventType,
  196.         ODDispatchModule* dispatchModule)
  197. {
  198.    SOM_Resolve(this,ODBaseDispatcher,RemoveMonitor)
  199.     (this,ev,eventType,dispatchModule);
  200. }
  201.  
  202.  
  203. /* public method: Dispatch */
  204. ODBoolean   Dispatch(Environment *ev,
  205.         ODEventData* eventData)
  206. {
  207.    return SOM_Resolve(this,ODBaseDispatcher,Dispatch)
  208.     (this,ev,eventData);
  209. }
  210.  
  211.  
  212. /* public method: TerminateEventLoop */
  213. void   TerminateEventLoop(Environment *ev)
  214. {
  215.    SOM_Resolve(this,ODBaseDispatcher,TerminateEventLoop)
  216.     (this,ev);
  217. }
  218.  
  219.  
  220. /* public method: ShouldTerminateEventLoop */
  221. ODBoolean   ShouldTerminateEventLoop(Environment *ev)
  222. {
  223.    return SOM_Resolve(this,ODBaseDispatcher,ShouldTerminateEventLoop)
  224.     (this,ev);
  225. }
  226.  
  227.  
  228.  
  229. };   /* ODBaseDispatcher */
  230.  
  231.  
  232.  
  233. #endif       /* SOM_ODBaseDispatcher_xh */
  234.